#pragma once

#pragma region /*===============系统配置==============*/
//由于使用了string.h,所以在keil目标选项中一定要使能[Use MicroLIB]!否则仿真器进入不了main--
//#define DEBUG
//=============UartDriver配置项===============需要修改配置的量
#define USE_UART_NUM	(2)			//定义串口使用个数
#define UART_USE_HAL_IDLE_INT		//定义是否使用HAL中的空闲中断驱动
//#define UART_USE_IDLE_INT			//定义使用默认的空闲中断驱动

//=============SPI配置项===============需要修改配置的量
#define USE_SPI_NUM		(2)

//==========I2C配置项===========
//#define	USE_I2C_NUM		(1)			//根据使用I2C个数来修改0--n,0:不使用！！

/********************W5500在Includes.h中配置项*******************/
//见_device_id定义: MIXED_BLOOD/混血儿, CORNET/短号
#define MY_DEVICE_ID			T72_DRIVER
/*固件版本*/
#define HW_VER					0x10	//1.0
/*IP配置方法选择，请选择: 指定IP_FROM_DEFINE, 自动IP_FROM_DHCP, 指定IP_FROM_EEPROM*/
#define IP_FROM_MODE			IP_FROM_EEPROM
//定义MAC地址,如果多块W5500网络适配板在同一现场工作，请使用不同的MAC地址(前3字节不能修改!一般修改后3字节内容)
#define DEFINE_MAC				{ 0x00, 0x08, 0xdc, 0x11, 0x11, 0x00 }
/*定义W5500默认IP地址--等于255,255,255,255则采用自动获得ip模式,即IP_FROM_DHCP*/
#define DEFINE_LOCAL_IP			{ 192, 168, 1, 100 }
/*定义W5500默认子网掩码*/
#define DEFINE_SUB_NET			{ 255, 255, 255, 0 }
/*定义W5500默认网关*/
#define DEFINE_GATEWAY			{ 192, 168, 1, 1 }
/*定义W5500默认DNS*/
#define DEFINE_DNS				{ 114, 114, 114, 114 }
/*定义本地端口*/
#define DEFINE_LOCAL_PORT		(9001)
/*定义远端IP地址--群呼*/
#define DEFINE_REMOTE_IP		{ 255, 255, 255, 255 }
/*定义远端端口号*/
#define DEFINE_REMOTE_PORT		(9000)

/******************在eeprom.h中配置项*************************/
/* eeprom变量所占16bit的个数 Variables' number */
#define NB_OF_VAR				(sizeof(EEPROM_MSG_STR))	//16位变量个数
/* F1xx系列需要定义 */
#define FLASH_SIZE				(0x80000UL)		//F1xx系列需要定义FLASH大小[字节]
/* F4xx系列需要定义 */
//#define PAGE_SIZE				(16 * 1024)		// F4xx系列需要定义 Page size
//#define START_SECTOR_NO			(2U)			// F4xx系列需要定义起始扇区的序号,共需2个同样大小的连续扇区
//#define EEPROM_START_ADDRESS	(0x08008000)

/********************DEBUG串口配置项*******************/
#if USE_UART_NUM > 0 & defined DEBUG
//#define DEBUG_UART						USART2	//或huart2.Instance, 如果只使用ITM而不使用串口打印时要屏蔽该定义
#define PRINT(fmt, ...)					printf(fmt, ##__VA_ARGS__)
#else
#define PRINT(fmt, ...)
#endif // USE_UART_NUM > 0 && DEBUG

#pragma endregion

#pragma region //================头文件================
#include <stdio.h>
#include <string.h>
#include "cmsis_os.h"	//使用操作系统时包含
#include "spi.h"
#include "usart.h"
//#include "i2c.h"
#include "tim.h"
#include "main.h"

#include "stdbool.h"	//使用bool -> true flase 类型定义
#pragma anon_unions		// 使用联合结构匿名定义时需要

#include "UartDriver.h"
#include "SPI_Driver.h"
//#include "I2C_driver.h"

#include "MT6701_Driver.h"
#include "W5500_Driver.h"

#include "socket.h"
#include "protocol.h"

#pragma endregion

